1. Field of the Invention
The invention relates generally to systems for measuring the pulse shape of a broadcast spread-spectrum signal and, in particular, to systems that provide multipath mitigation by estimating at least the direct path signal based on the pulse shape measurements.
2. Background Information
One example of a system that utilizes broadcast spread-spectrum signals is a global positioning system, such as, GPS, GLONAS or AltBOC systems. The system receivers determine their global positions based on the signals they receive from associated satellites. The broadcast spread-spectrum signal consists of a carrier that is modulated by at least one pseudorandom code, such as a binary PRN code that consists of a seemingly random sequence of one and zeros that periodically repeat. The ones and zeros in the PRN code are referred to as “code chips,” and the transitions in the code from one to zero or zero to one, which occur at “code chip times,” are referred to as “bit transitions.” Each satellite uses a unique PRN code, and thus, a receiver can associate a received signal with a particular satellite by determining which PRN code is included in the signal.
The receiver calculates the difference between the time a satellite transmits its signal and the time that the receiver receives the signal. The receiver then calculates its distance, or “pseudorange,” from the satellite based on the associated time difference. Using the pseudoranges from at least four satellites, the receiver determines its global position.
To determine the time difference, the receiver synchronizes locally-generated PRN codes with the PRN codes in the received signal by aligning the code chips in each of local codes with the chips in the corresponding satellite generated unique PRN codes. It then determines how much the locally-generated PRN codes are shifted, in time, from the known timing of the satellite PRN codes at the time of transmission, and calculates the associated pseudoranges by multiplying the measured time shifts by the speed of light. The more closely the receiver aligns the locally-generated PRN code with the PRN code in the received signal, the more precisely the receiver can determine the associated time difference and pseudorange and, in turn, its global position.
The code synchronization operations include acquisition of the satellite PRN code and tracking the code. To acquire the PRN code, the receiver generally makes a series of correlation measurements that are separated in time by a code chip, to determine when the locally-generated code aligns with the received code to within one code chip. To thereafter track the PRN code, the receiver generally makes correlation measurements that are associated with the received PRN code and early and late versions of the locally-generated PRN code. The receiver thus produces an associated error signal that is proportional to the misalignment between the local PRN code and the received PRN code. The error signal is used, in turn, to control the PRN code generator, which shifts the local PRN code essentially to minimize the error signal.
The receiver also typically aligns the satellite carrier with a local carrier using correlation measurements associated with a punctual version of the local PRN code. To do this the receiver uses a carrier tracking phase lock loop.
The receiver receives not only line-of-sight, or direct path, satellite signals but also multipath signals, which are signals that travel along different paths and are reflected to the receiver from the ground, bodies of water, nearby buildings, etc. The multipath signals arrive at the receiver after the direct-path signal and combine with the direct-path signal to produce a distorted received signal. This distortion of the received signal adversely affects code synchronization operations because the correlation measurements, which measure the correlation between the local PRN code and the received signal, are based on the entire received signal—including the multipath components thereof. The distortion may be such that the receiver attempts to synchronize to a multipath signal instead of to the direct-path signal. This is particularly true for multipath signals that have code bit transitions that occur close to the times at which code bit transitions occur in the direct-path signal.
One way to more accurately synchronize the received and the locally-generated PRN codes is to use the “narrow correlators” discussed in U.S. Pat. Nos. 5,101,416; 5,390,207 and 5,495,499. It has been determined that narrowing the delay spacing between early and late correlation measurements substantially reduces the adverse effects of noise and multipath signal distortion on the early-minus-late measurements. The delay spacing is narrowed such that the noise correlates in the early and late correlation measurements. Also, the narrow correlators are essentially spaced closer to a correlation peak that is associated with the punctual PRN code correlation measurements than the contributions of many of the multipath signals. Accordingly, the early-minus-late correlation measurements made by these correlators are significantly less distorted than they would be if they were made at a greater interval around the peak.
Another way to more accurately synchronize the received and the locally-generated PRN codes is to use a multipath mitigation processing technique that iteratively produces estimates of the direct path signal and one or more of the multipath signals. One such technique is described in U.S. Pat. Nos. 5,615,232 and 6,692,008. Another technique that uses multiple correlators is described in U.S. Pat. No. 5,414,729. Yet another multipath mitigation technique is discussed in Weill, “Multipath Mitigation Using Modernized GPS Signals: How Good Can It Get,” ION GPS 2002, Portland, Oreg., Sep. 24-27, 2002.
The multipath mitigation processing techniques are based on the manipulation of pulse-shape information that corresponds to samples of the received signal taken at discrete code-phase offsets. The samples are taken in synchronism with a sample clock, with a predetermined number of samples taken per code chip.
Each signal in the pulse is represented by three parameters [τ, A, θ], where τ represents the time offset or code delay, A represents the amplitude, and θ represents the phase angle. The basic form of the manipulations that extract the direct path signal, [τd, Ad, θd], and two multipath signals, [τmp1, Amp1, θmp1] and [τmp2, Amp2, θmp2], is:
      [                  τ        d            ,              A        d            ,              θ        d            ,              τ                  m          ⁢                                          ⁢          p          ⁢                                          ⁢          1                    ,              A                  m          ⁢                                          ⁢          p          ⁢                                          ⁢          1                    ,              θ                  m          ⁢                                          ⁢          p          ⁢                                          ⁢          1                    ,              τ                  m          ⁢                                          ⁢          p          ⁢                                          ⁢          2                    ,              A                  m          ⁢                                          ⁢          p          ⁢                                          ⁢          2                    ,              θ                  m          ⁢                                          ⁢          p          ⁢                                          ⁢          2                      ]    =      f    ⁡          [                                                                                                                                                                                                                                                                                                                                                                                                                              I                                        1                                                                            ,                                                                              Q                                        1                                                                                                                                                                                                                                                                                                                                I                                        2                                                                            ,                                                                              Q                                        2                                                                                                                                                                                                                                                                                                                                                                                      I                                  3                                                                ,                                                                  Q                                  3                                                                                                                                                                                                                                                        ·                                                                                                                                          ·                                                                                          ·                                                                              I                n                            ,                              Q                n                                                        ]      where the Ii, Qi values are the pulse-amplitude samples measured at discrete code-phase offsets along the fractional length of the expected pseudo-random-noise (“PRN”) chip.
The input data from discrete sample points of the received spread-spectrum signal are samples from the composite signal, which includes the direct and the multipath signals. The accuracy of the multipath mitigation processing is inversely proportional to the thermal-noise level corrupting the samples of the incoming spread-spectrum signal. Individual samples of the signal are too noisy to achieve acceptable results, and a certain amount of filtering of the incoming signal is required to provide accurate multipath detection using the multipath mitigation techniques.
Multipath interference is usually slowly varying with respect to the frequency of the spread spectrum chip rate. Over a relatively long period of time, (a few seconds) the multipath interference affects every chip of the incoming signal the same way. The thermal noise, which dominates the signal, varies rapidly with each chip of the incoming signal and can be easily filtered.